#include "UP_test.h"
#include "gd32f4xx.h"
#include "systick.h"
#include <stdio.h>
#include "UP_EXTI.h"
#include "UP_GPIO.h"

#define LED1 PE3

/**
 * @brief 按下KEY UP，LED1亮，松开KEY UP，LED1灭
 * 
 */
void EXTI_test(void)
{
    systick_config();

    GPIO_Init(LED1, 0);

    // 设置中断优先级组 - 需要misc模块支持
    // 2位用于抢占优先级，2位用于响应优先级
    nvic_priority_group_set(NVIC_PRIGROUP_PRE2_SUB2);
    // 初始化，需要exti模块支持
    EXTI_init(PA0);

    while (1) {
    }
}

#if TEST_TYPE == TEST_EXTI

void EX0_isr()
{
    if (gpio_input_bit_get(GPIOA, GPIO_PIN_0) == SET) {
        /* 按键按下 */
        printf("key press!\r\n");
        GPIO_Set(LED1, 1);
    } else {
        // 按键释放
        printf("key release!\r\n");
        GPIO_Set(LED1, 0);
    }
}

#endif